﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
//int main()
//{
//	//数组创建
//	int arr1[20];
//	char arr2[4];
//	//数组初始化
//	int num[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };//完全初始化
//	int num1[10] = { 1, 2, 3, 4, 5};//不完全初始化，剩余元素为0
//	int num2[] = { 1, 2, 3, 4, 5 };//可以省略数组大小指定，编译器会根据数组的初始化内容来确定数组的真实大小
//	int a = 19;
//	//sizeof 计算的是变量或者类型的长度，单位是字节
//	printf("%d\n", sizeof(int));
//	printf("%d\n", sizeof(a));
//	system("pause");
//	return 0;
//}

//int main()
//{
//	int arr[5] = { 0 };
//	printf("%d\n", sizeof(arr));//计算的是数组大小，单位字节
//	printf("%d\n", sizeof(arr[0]));
//	printf("%d\n", sizeof(arr) / sizeof(arr[0]));//总数组大小/一个元素大小=元素个数
//	system("pause");
//	return 0;
//}

//打印数组元素地址
//int main()
//{
//	int arr[10] = { 0 };
//	for (int i = 0; i <= 9; i++)
//	{
//		scanf("%d", &arr[i]);
//	}
//	for (int i = 0; i <= 9; i++)
//	{
//		printf("&arr[%d]==%p\n",i,&arr[i]);
//	}
//	system("pause");
//	return 0;
//}

//⼆维数组的输⼊和输出
//int main()
//{
//	int arr[][2] = { 2, 3, 4, 2, 7 };
//	printf("%d\n", arr[2][0]);
//	int arr1[3][2] = { 0 };
//	int i, j = 0;
//	for (i = 0; i < 3; i++)
//	{
//		for (j = 0; j < 2; j++)
//		{
//			scanf("%d", &arr1[i][j]);
//		}
//	}
//	for (i = 0; i < 3; i++)
//	{
//		for (j = 0; j < 2; j++)
//		{
//			printf("%d ", arr1[i][j]);
//		}
//		printf("\n");
//	}
//
//	system("pause");
//	return 0;
//}

//练习1：多个字符从两端移动，向中间汇聚
//int main()
//{
//	char arr1[] = "2023/10/25";
//	char arr2[] = "**********";
//	int left = 0;
//	int right = strlen(arr1) - 1;
//	
//	while (left <= right)
//	{
//		arr2[left] = arr1[left];
//		arr2[right] = arr1[right];
//		printf("%s\n", arr2);
//		Sleep(1000);
//		system("cls");//system函数是库函数，执行系统指令，cls是清理控制台屏幕信息
//		left++;
//		right--;
//	}
//	printf("%s\n", arr2);
//	system("pause");
//	return 0;          
//}

//⼆分查找
//int main()
//{
//	int arr1[] = { 1, 2, 3, 4, 5, 6, 7, 8 };
//	int a= 0;
//	int left = 0;
//	int right = (sizeof(arr1) / sizeof(arr1[0])) - 1;
//	scanf("%d", &a);
//	while (left <= right)
//	{
//		int mid = (left + right) / 2;
//		if (arr1[mid] < a)
//		{
//			left = mid + 1;
//			mid = (left + right) / 2;
//		}
//		else if (arr1[mid]>a)
//		{
//			right = mid - 1;
//			mid = (left + right) / 2;
//		}
//		else
//		{
//			printf("下标是%d", mid);
//			break;
//		}
//
//	}
//	if (left > right)
//	{
//		printf("zhaobudao");
//
//	}
//	system("pause");
//	return 0;
//}


//int main()
//{
//	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };//升序的数组
//	//在数组中查找k - 7
//	int k = 0;
//	scanf("%d", &k);
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	
//	int left = 0;
//	int right = sz - 1;
//
//	while (left<=right)
//	{
//		int mid = (left + right) / 2;
//		if (arr[mid] == k)
//		{
//			printf("找到了，下标是:%d\n", mid);
//			break;
//		}
//		else if (arr[mid] < k)
//		{
//			left = mid + 1;
//		}
//		else
//		{
//			right = mid - 1;
//		}
//	}
//	//
//	if (left > right)
//	{
//		printf("找不到\n");
//	}
//
//	return 0;
//}

